home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 2,801 to 2,900 / aol-file-protocol-4400-2801-to-2900.zip / AOLDLs / C++ Files Library / SK (Sockects) 1.4.1 r2 / SK v1.4.1 r2.sit / SK 1.4.1 r2 / SK / SK Q&A.note < prev    next >
Text File  |  1994-06-17  |  8KB  |  178 lines

  1.                                    SK Q&A
  2.                                    ------
  3.                                                                                                                             
  4. Table of contents 
  5. -----------------
  6.  
  7. >>> General questions 
  8.  
  9. Ñ What is SK and where can I get it? 
  10. Ñ Is there a mailing list for SK? 
  11. Ñ How do I send an article to the mailing list? 
  12. Ñ Is there a Power PC native version of this thing? 
  13.  
  14. >>> Working with SK 
  15.  
  16. Ñ How do I get started in the fastest possible manner? 
  17. Ñ Why does the test program crash? 
  18. Ñ Why can't SK TCP/IP sockets deal with incoming out-of-band data? 
  19. Ñ Why is this thing so much slower than on my Unix box? 
  20.  
  21. >>> Working with the sources 
  22.  
  23. Ñ Why can't the compiler find some of the files when I compile? 
  24. Ñ Why do I get multiply defined errors when I compile? 
  25. Ñ Where is AEEventHandlerProcPtr defined? 
  26. Ñ Why does this code look so weird? 
  27.  
  28. Questions
  29. ---------
  30.  
  31. >>> What is SK and where can I get it? 
  32.  
  33. SK is a Macintosh implementation of BSD style TCP and UDP sockets that also
  34. provides some Unix calls missing from the Mac. It is intended to aid in the
  35. porting of Unix software to the Macintosh line of computers. 
  36.  
  37. SK is actually a slightly altered/enhanced port of Matthias Neeracher's
  38. GUSI (Grand Unified Sockets Interface) that is intended to work with the
  39. Symantec C++ 7.x compiler. GUSI implements more types of socket domains
  40. than does SK but it currently runs only under MPW and (soon) Metrowerks
  41. CodeWarrior. SK on the other hand, currently runs only under Symantec C++
  42. 7.x. 
  43.  
  44. SK is kept up to date with GUSI as much as possible. The current version
  45. matches GUSI version 1.4.1 (version numbers are kept parallel to avoid
  46. confusion). 
  47.  
  48. SK is just one piece of a suite of portability tools that are being
  49. assembled at the Decision Systems Group for the development of large
  50. distributed component-based systems. These tools will be appearing on our
  51. ftp site over the next year or so. 
  52.  
  53. The most recent version of SK is always available via anonymous ftp to
  54. dsg.harvard.edu [134.174.81.84] in /pub/src/SK. The current version is
  55. 1.4.1r2 and is available in the above directory as SK_141r2.sea.bin. Don't
  56. forget to specify *Binary* or Macbinary mode for transfer. 
  57.  
  58. >>> Is there a mailing list for SK? 
  59.  
  60. Currently, users of SK are sharing the GUSI mailing list. 
  61.  
  62. To subscribe, send mail to gusi-request@iis.ee.ethz.ch stating your intent
  63. in English or German. Format is unimportant, as mail is processed by a
  64. person. 
  65.  
  66. >>> How do I send an article to the mailing list? 
  67.  
  68. Articles sent to gusi@iis.ee.ethz.ch are automatically sent to the list. If
  69. you have an article that you are not sure whether it should be distributed,
  70. send it to gusi-request@iis.ee.ethz.ch. Matthias will read your article,
  71. and will send it to the list unless he thinks he can answer it exhaustively
  72. and neither the question nor the answer are of general interest. 
  73.  
  74. >>> Is there a Power PC native version of this thing? 
  75.  
  76. Not yet. GUSI is apparently close to running on Metrowerks CodeWarrior, so
  77. that may be the way to go in the near future. It is likely that SK will
  78. also be ported sometime soon (shouldn't be terribly difficult, I hope).
  79. Send me mail at sdeibel@dsg.harvard.edu to get a status report. 
  80.  
  81. >>> How do I get started in the fastest possible manner?
  82.  
  83. Link SK.lib into your project, copy the SK public headers to your header
  84. file search path (see Symantec docs), and start writing sockets code! 
  85.  
  86. >>> Why does the test program crash? 
  87.  
  88. If you are using an IP number instead of a DNS name when you use the 'co'
  89. command, this version of the test program will crash. I understand that the
  90. version being distributed currently with GUSI will work in this case but I
  91. am out of time to play with this thing and just didn't have time to update
  92. the test code. If anyone pursues this, please send me the bug fixes and/or
  93. newer versions! 
  94.  
  95. >>> Why can't GUSI TCP/IP sockets deal with incoming out-of-band data?
  96.  
  97. Because neither Matthias nor I understand the precise semantics involved.
  98. If anybody can explain them to one of us, we will very likely implement it
  99. (both in SK and GUSI). 
  100.  
  101. >>> Why is this thing so much slower than on my Unix box? 
  102.  
  103. There are some performance problems on the Macintosh that manifest in some
  104. cases, primarily in applications that have intense conversations consisting
  105. of many small messages going back and forth synchronously. This is
  106. especially bad if both client and server are running on a Mac. 
  107.  
  108. The problems stem from the way that the Mac does multitasking. There just
  109. isn't any great way to write code that will give up time to other processes
  110. while waiting on a resource and also regain control quickly when it is time
  111. to do more work. This is the age-old gripe about Macs not having preemptive
  112. multitasking. 
  113.  
  114. The good news is that SK will work just fine for many applications. I am in
  115. fact working on solving this, or at least increasing performance somewhat.
  116. Future releases of both SK and GUSI will hopefully incorporate some
  117. improvement in this area. 
  118.  
  119. >>> Why can't the compiler find some of the files when I compile? 
  120.  
  121. Symantec is not real smart about using partial relative path names. In
  122. fact, it always uses full path names to locate source files *outside* of a
  123. project's folder. Unfortunately, this isn't very compatible with the way
  124. most multi-module systems will be set up on disk. In my lab, we use
  125. standard disk names and path names to all of our shared code so that we
  126. don't have problems with this. The folders in this distribution are meant
  127. to be in a directory called "HD:Arachne:". If you set it up this way, it
  128. will work. 
  129.  
  130. If you have problems getting Symantec to locate header files, here are some
  131. things that will help: 
  132.  
  133. 1) Upgrade to Symantec version 7.0.2, which has some improved features for
  134. dealing with header search paths. 
  135.  
  136. 2) Make aliases of all the header file folders in the distribution (don't
  137. forget the one in the CU folder) and put them into the Aliases folder in
  138. the Symantec C++ software folder. 
  139.  
  140. >>> Why do I get multiply defined errors when I compile? 
  141.  
  142. Some of the Symantec headers (specifically stdlib.h) seem to be included
  143. more than once even though they contain a '#pragma once'. I suspect this is
  144. a bug due to the fact that they are being included from C++ files. I just
  145. added the usual #ifndef STDLIB_H / #define STDLIB_H 1 / #endif /* STDLIB_H
  146. */ to that header and it worked. You may have to do the same. 
  147.  
  148. If you end up investigating this problem further, be aware that Symantec
  149. C++ 7.0.2 also seems to forget to automatically #define 'macintosh' when
  150. you do a Preprocess. Of course, it also refuses to let you define this
  151. manually in the prefix... 
  152.  
  153. >>> Where is AEEventHandlerProcPtr defined? 
  154.  
  155. If you are getting an error during compiling complaining that you don't
  156. have a definition of AEEventHandlerProcPtr, just #define it to be
  157. EventHandlerProcPtr in your prefix. For some reason, the older Symantec
  158. headers don't agree with the latest. Updating to the real 7.0.2 will solve
  159. this (although using the free update to 6.x apparently doesn't). 
  160.  
  161. >>> Why does this code look so weird? 
  162.  
  163. When I originally did this port, I was envisioning that this code would
  164. eventually be the basis for a cross-platform sockets interface (one that
  165. would work on Macs and PCs at least). That isn't true any more (we will
  166. just use WinSock on PCs) but it did lead me to apply a naming convention
  167. that we use here at the Decision Systems Group and to insert alot of
  168. comments, etc. 
  169.  
  170. This is obviously causing some pain in keeping SK up to date with GUSI, but
  171. that's how the cookie crumbles. 
  172.  
  173. ___________________________________________________________________________
  174.  
  175. SK Q&A / 17Jun94 / Stephan R.A. Deibel 
  176.  
  177.  
  178.